/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Adkiraki;

import java.text.SimpleDateFormat;
import java.util.Date;
import javax.faces.context.FacesContext;
import javax.jdo.PersistenceManager;
import javax.servlet.http.HttpSession;

/**
 *
 * @author pauloferreira
 */
public class NegocioBean {    
    private Long origemUsuarioId;
    private Long destinoUsuarioId;
    private Long formaEnvioId;
    private Long formaPagamentoId;
    private Long produtoId;
    private Float valorNegociado;
    private Date dataNegociacao;
    private Date dataEfetuacao;
    private Boolean efetuado;
    
    // Construtor
    public NegocioBean() { 
        FacesContext context = FacesContext.getCurrentInstance();
        HttpSession session = (HttpSession) context.getExternalContext().getSession(true);
        Usuario usuario = (Usuario)session.getAttribute(Usuario.class.getName());        
        origemUsuarioId = usuario.getUsuarioId();
        destinoUsuarioId = null;
        formaEnvioId = null;
        formaPagamentoId = null;
        //List<Produto> produto;
        valorNegociado = 0%.2f;
        Date dataNegociacao = null;
        Date dataEfetuacao = null;
        efetuado = false;        
    }
    
    public String Salvar() {
        PersistenceManager pm = PMF.get().getPersistenceManager();
        
        Date data = new Date();
        SimpleDateFormat formatador = new SimpleDateFormat("dd/MM/yyyy");
        formatador.format(data);
        
        dataNegociacao = data;

        Negocio negocio = new Negocio(this.origemUsuarioId, this.destinoUsuarioId, this.formaEnvioId, this.formaPagamentoId, this.produtoId, this.valorNegociado, this.dataNegociacao, this.dataEfetuacao, this.efetuado);
        pm.makePersistent(negocio);
        pm.close();
        return "produtos";
    }
    
    /**
     * @return the origemUsuarioId
     */
    public Long getOrigemUsuarioId() {
        return origemUsuarioId;
    }

    /**
     * @param origemUsuarioId the origemUsuarioId to set
     */
    public void setOrigemUsuarioId(Long origemUsuarioId) {
        this.origemUsuarioId = origemUsuarioId;
    }

    /**
     * @return the destinoUsuarioId
     */
    public Long getDestinoUsuarioId() {
        return destinoUsuarioId;
    }

    /**
     * @param destinoUsuarioId the destinoUsuarioId to set
     */
    public void setDestinoUsuarioId(Long destinoUsuarioId) {
        this.destinoUsuarioId = destinoUsuarioId;
    }

    /**
     * @return the formaEnvio
     */
    public Long getFormaEnvioId() {
        return formaEnvioId;
    }

    /**
     * @param formaEnvio the formaEnvio to set
     */
    public void setFormaEnvioId(Long formaEnvioId) {
        this.formaEnvioId = formaEnvioId;
    }

    /**
     * @return the formaPagamento
     */
    public Long getFormaPagamentoId() {
        return formaPagamentoId;
    }

    /**
     * @param formaPagamento the formaPagamento to set
     */
    public void setFormaPagamentoId(Long formaPagamentoId) {
        this.formaPagamentoId = formaPagamentoId;
    }

    /**
     * @return the produto
     */
    public Long getProdutoId() {
        return produtoId;
    }

    /**
     * @param produto the produto to set
     */
    public void setProdutoId(Long produtoId) {
        this.produtoId = produtoId;
    }

    /**
     * @return the valorNegociado
     */
    public Float getValorNegociado() {
        return valorNegociado;
    }

    /**
     * @param valorNegociado the valorNegociado to set
     */
    public void setValorNegociado(Float valorNegociado) {
        this.valorNegociado = valorNegociado;
    }

    /**
     * @return the dataNegociacao
     */
    public Date getDataNegociacao() {
        return dataNegociacao;
    }

    /**
     * @param dataNegociacao the dataNegociacao to set
     */
    public void setDataNegociacao(Date dataNegociacao) {
        this.dataNegociacao = dataNegociacao;
    }

    /**
     * @return the dataEfetuacao
     */
    public Date getDataEfetuacao() {
        return dataEfetuacao;
    }

    /**
     * @param dataEfetuacao the dataEfetuacao to set
     */
    public void setDataEfetuacao(Date dataEfetuacao) {
        this.dataEfetuacao = dataEfetuacao;
    }

    /**
     * @return the efetuado
     */
    public Boolean getEfetuado() {
        return efetuado;
    }

    /**
     * @param efetuado the efetuado to set
     */
    public void setEfetuado(Boolean efetuado) {
        this.efetuado = efetuado;
    }   
 }
